#ifndef ASTAR_PATHFINDER_H
#define ASTAR_PATHFINDER_H

#include "double-linked-list.h"
#include "map.h"

class Astar_Pathfinder
{
public:
	Astar_Pathfinder(Map *, int, int, int, int);
	Double_Linked_List *getPath();

private:
	Map *MAP;
	Double_Linked_List *CAMEFROM;		// the map of navigated nodes
	Double_Linked_List *CLOSED;		// the closed list
	Double_Linked_List *OPEN;		// the open list
	int X1;
	int Y1;
	int X2;
	int Y2;
	bool generatePath();
	int estimateDistance(int, int, int, int);
//	void reconstructPath(Node *);
};

#endif
